<!-- 
    js作用域，就是代码名字(变量)在某个范围内起作用和效果，目的是为了提高程序的可靠性
    更重要的是减少的命名冲突
    
    2.作用域分类(es6)之前：全局作用域，局部作用域
    
    //3.全局作用域：整个script标签，或者是一个单独的js文件
        局部作用域(函数作用域)：在函数内部就是作用域，这个代码的名字只在函数内部起效果和作用
 
      4、根据作用域的不同可以分为，全局变量和局部变量
      全局变量：
        情况1：在全局作用域下的变量
        情况2：如果在函数内部没有声明，直接赋值的变量，也属于全局变量(不建议使用)
      局部变量
        情况1：在局部(函数作用域下)内部使用的变量
        情况2：函数的形参也可以看做是局部变量

      5、从执行效率来看全局变量和局部变量
       (1) 全局变量:只有浏览器关闭的时才会销毁，比较占内存资源
       (2) 局部变量：当我们程序执行完毕就会被销毁，比较节约内存资源。

      6、现在阶段我们没有块作用域 es6会新增块级作用域
    //块级作用域{}   if{}  for{}
    java语言中
    if(xx){
        int num=30;
    }
    //这system.out.println(num) 这里是不能调用的

    在js中
    if(xx){
        var num=10;
    }
    console.log(num);//这里正常输出10
 -->

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var num = 10;   //全局作用域  ,num就是全局变量
        console.log(num);

        function fn() {
            var num1 = 10;  //函数作用域，局部作用域
            console.log(num1);  //num1是局部变量，只能在函数内部使用
            num2 = 10;  //如果在函数内部没有声明，直接赋值的变量，也属于全局变量
        }
        fn();
        //  console.log(num1);
        console.log(num2);

    </script>
</head>

<body>

</body>

</html>